fix(routing): tolerate transient nonzero htar/htar_large rc in ship_object #28
+201
−8
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
ship_object()'s htar/htar_large create step no longer treats a nonzero exit code as automatically fatal. Onrc != 0it checks viahsi lswhether the tar (+.idx) actually landed on Fortress, and if so falls through to the existing round-trip retrieve + per-file MD5 verify before trusting it — only raising if that verification also fails. A genuinely missing tar still raises exactly as before.{stem}_{ts}.htar_create.log) instead of only a 4000-char tail in the exception, so a real future failure is diagnosable without reproducing it.Test plan
tests/test_ship_object_htar_rc.py: rc != 0 + tar confirmed present recovers (round-trip actually runs against real copied bytes); rc != 0 + tar genuinely missing still raises; rc = 0 baseline unaffected.python3 -m pytest tests/— 292/292 passed.Generated with Claude Code